package com.joysuch.wwyt.api.dataaccess;

import com.joysuch.wwyt.api.dataaccess.bean.*;
import com.joysuch.wwyt.bp.entity.contractor.BpContractor;
import com.joysuch.wwyt.core.common.ajax.ResultBean;
import com.joysuch.wwyt.core.entity.BaseConfig;
import com.joysuch.wwyt.risk.entity.RiskDistrict;

import java.util.List;
import java.util.Map;

public interface OrientationDataSyncService {

    void riskDistrict(List<RiskDistrict> all, String flag);

    ResultBean alarmTemplate(OrientationSearchBean bean);

    ResultBean getPageCertificateOrAreaAlarm(Long tenentId, String orgCode, OrientationSearchBean bean);

    List<OrientationPageAlarmCertificateOrAreaBean> pageCertificateOrAreaAlarm(Long tenentId, String orgCode, OrientationSearchBean bean);

    ResultBean pageSolveAlarm(OrientationSearchBean bean);

    void contractor(List<BpContractor> all, String flag);

    ResultBean checkSnInArea(Long userId, Long pointId);

    Integer getAlarmNumber(Long tenentId, String orgCode);

    Map<String, Integer> getAlarmTypesNumber(Long tenentId, String orgCode);

    String getV2Token();

    String getV3ScreenToken();

    Integer getV3BindersVersion(OrientationSearchBean bean, Long tenentId, String orgCode);

    OrientationScreenBindersBean getV3ScreenBinders(OrientationSearchBean bean, Long tenentId, String orgCode);

    List<OrientationScreenBinderBean> getScreenBinderData(Long tenentId, String orgCode, String source);

    List<OrientationScreenAreaPersonBean> getV3ScreenAreaPerson(Long currentTenantId, String companyCode);

    /**
     * 获取人车列表
     *
     * @param areaId 区域id
     */
    Object getV3ScreenRegionalPopulation(Long areaId);

    OrientationAlarmCountBean alarmMessageCount(Long tenentId, String OrgCode);

    /**
     * 更新定位报警列表 报警总数
     *
     * @param tenentId
     * @param orgCode
     */
    void renewLocateAlarmData(Long tenentId, String orgCode, String flag);

    void renewAlarmCount(Long tenentId, String orgCode);

    Boolean getAlarmSwitch(Long tenentId, String orgCode);

    /**
     * 5.3人员定位报警订阅
     */
    void batchApiV3Subscribe();

    boolean apiV3Subscribe(String orgCode, Long tenentId, String buildId, String alarmType, String url, BaseConfig portConfig);

    boolean getV3Subscribe(String type, String url);

    void getV3Alarm(OrientationV3AlarmReqBean reqBean);

    String ipTest(Integer type);

    Integer getScUserData(String orgCode,Long tenentId);
}
